博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图文混排的几种实现方案
阅读量:6822 次
发布时间:2019-06-26

本文共 1890 字,大约阅读时间需要 6 分钟。

1、自定义控件

https://github.com/hongyangAndroid/MixtureTextView

原理:MixtureTextView extends RelativeLayout,将图片(包括gif)放在MixtureTextView中,根据属性,例如alignParentRight等,在onLayout里获取属性值,在dispatchDraw里根据图片所占的位置绘制文字,以此实现图文混排

不足:图片位置需要相对文字固定

 

2、使用html的img标签实现

/**     * 拼接图片     *     * @return     */    private String descString(String s) {        return s + "";    }

 

tv_title.setText(Html.fromHtml(descString(bean.title), getImageGetterInstance(), null));

 

/**     * ImageGetter用于text图文混排     *     * @return     */    public Html.ImageGetter getImageGetterInstance() {        Html.ImageGetter imgGetter = new Html.ImageGetter() {            @Override            public Drawable getDrawable(String source) {                int fontH = (int) (getResources().getDimension(R.dimen.fontH));                int id = Integer.parseInt(source);                Drawable d = getResources().getDrawable(id);                int width = (int) ((float) d.getIntrinsicWidth() / (float) d.getIntrinsicHeight()) * fontH;                d.setBounds(0, 0, width, fontH);                return d;            }        };        return imgGetter;    }

 优点:简单,易使用

 不足:图片位置适配不好处理(通过html标签应该可以解决)

 

3、使用字体包ttf

原理:将图案做在ttf里

string.xml,由设计给具体code

 

<string name="fa_dot_circle_o">&#xf192;</string>

<string name="fa_wheelchair">&#xf193;</string>
<string name="fa_vimeo_square">&#xf194; &#xf195;</string>
<string name="fa_try">&#xf195;</string>
<string name="fa_plus_square_o">&#xf196;</string>

 

textView直接引用

Typeface font = Typeface.createFromAsset(getAssets(),                "fontawesome-webfont.ttf");        tab1.setTypeface(font);

 空格需要使用转义字符

public static String blankSpace =  "  ";    public static String blankSpace2 =  "&emsp&emsp";

 优点:十分简单

 不足:图片颜色只能设置单一色

转载于:https://www.cnblogs.com/wanghongwei/p/6039049.html

你可能感兴趣的文章
CoreAnimation笔记
查看>>
51Nod-1179 最大的最大公约数【暴力】
查看>>
POJ2100 Graveyard Design【尺取法】
查看>>
RSA的JavaScript程序
查看>>
OC中的集合详解
查看>>
四则运算二
查看>>
经典排序算法 - 快速排序Quick sort
查看>>
AngularJS~集成的ajax和服务的注入
查看>>
多么漂亮的重载构造方法呀!爱上.net
查看>>
os.path.join与中文目录
查看>>
【转】[Hadoop源码解读]序列化源码浅析
查看>>
Cpp中流继承关系
查看>>
工作小记
查看>>
Google+就是Google+社交,但真不是社交网络
查看>>
闭包理解
查看>>
About Me
查看>>
jquery3.1.1报错Uncaught TypeError: a.indexOf is not a function
查看>>
树莓派Raspberry实践笔记-安装使用minicom
查看>>
使用emmet如何生成lipsum的随机内容
查看>>
从0开始安装fedora23的笔记-- 以及使用fedora的常规问题-2
查看>>